#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;

int t;
long long nums[1010][6];
vector<long long> v(6);

bool del(int x)
{
    for (int j = 0; j < 6; j++) v[j] = nums[x][j];
    sort(v.begin(), v.end());
    long long  sum = v[0] + v[1] + v[2] + v[3];
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            if (i != j)
            {
                long long  tmp = v[i] + v[j];
                if ((tmp > v[4] && sum - tmp > v[5]) || (tmp > v[5] && sum - tmp > v[4])) return true;
            }
        }
    }
    return false;
}

//int main()
//{
//    cin >> t;
//    for (int i = 0; i < t; i++)
//    {
//        for (int j = 0; j < 6; j++) cin >> nums[i][j];
//    }
//
//    for (int i = 0; i < t; i++)
//    {
//        if (del(i)) cout << "Yes" << endl;
//        else cout << "No" << endl;
//    }
//    return 0;
//}

//int dx[4] = { 0,0,1,-1 };
//int dy[4] = { 1 ,-1 , 0 , 0 };
//bool vis[200][200] = { false };
//int solve(vector<vector<char> >& grid)
//{
//    queue<pair<int, int>> q, ret;
//    int n = grid.size(), m = grid[0].size();
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j < m; j++)
//        {
//            if (grid[i][j] == 1) q.push({ i,j });
//        }
//    }
//    while (q.empty())
//    {
//        pair<int, int> step = q.front();
//        int a = step.first, b = step.second;
//        for (int k = 0; k < 4; k++)
//        {
//            int i = a + dx[k], j = b + dy[k];
//            if (grid[i][j] == 1)
//            {
//                vis[i][j] = true;
//
//            }
//        }
//    }
//}

int dx[4] = { 0,0,1,-1 };
int dy[4] = { 1 ,-1 , 0 , 0 };
bool vis[200][200] = { false };

void dfs(vector<vector<char>>& grid, int i, int j)
{
    if (vis[i][j]) return;
    vis[i][j] = true;
    if (grid[i][j] == '0') return;
    for (int k = 0; k < 4; k++)
    {
        int a = i + dx[k], b = j + dy[k];
        if (a >= 0 && a < grid.size() && b >= 0 && b < grid[0].size())
        {
            if (grid[a][b] == '1')
            {
                dfs(grid, a, b);
                grid[a][b] = '0';
            }
        }
    }
}

//void del(vector<vector<char>>& grid, int i, int j)
//{
//    for (int k = 0; k < 4; k++)
//    {
//        int a = i + dx[k], b = j + dy[k];
//        if (a >= 0 && a < grid.size() && b >= 0 && b < grid[0].size())
//        {
//            if (grid[a][b] == '1') dfs(grid, i, j, a, b);
//            grid[a][b] = '0';
//            break;
//        }
//    }
//}

int solve(vector<vector<char> >& grid)
{
    int n = grid.size(), m = grid[0].size();
    int ret = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (grid[i][j] == '1')
            {
                dfs(grid, i, j);
                ret++;
            }
        }
    }
    return ret;
}

//int main()
//{
//    vector<vector<char>> nums = { {'1', '1', '0', '0', '0'},{'0', '1', '0', '1', '1'},{'0', '0', '0', '1', '1'},{'0', '0', '0', '0', '0'},{'0', '0', '1', '1', '1'}};
//    int ret = solve(nums);
//    cout << ret << endl;
//    return 0;
//}